Repeat the analysis in
Zhou, Y., Song, W.M., Andhey, P.S., Swain, A., Levy, T., Miller, K.R., Poliani, P.L., Cominelli, M., Grover, S., Gilfillan, S., et al. (2020). Human and mouse single-nucleus transcriptomics reveal TREM2-dependent and TREM2-independent cellular responses in Alzheimer’s disease. Nat. Med. 26, 131–142.
Load required packages.
library(tidyverse)
library(magrittr)
library(Matrix)
library(Seurat)
library(extrafont)
library(gridExtra)
# library(patchwork)
Sys.Date()
## [1] "2020-07-22"
source(
file = file.path(
SCRIPT_DIR,
"utilities.R"
)
)
# load matrix
embedding <- read.csv(
file = "embedding_ncomponents15_seed20200317.csv"
)
embedding %>% head()
reticulate::py_discover_config()
## python: /Users/jialei/.pyenv/shims/python
## libpython: /Users/jialei/.pyenv/versions/3.8.2/lib/libpython3.8.dylib
## pythonhome: /Users/jialei/.pyenv/versions/3.8.2:/Users/jialei/.pyenv/versions/3.8.2
## version: 3.8.2 (default, May 23 2020, 03:35:41) [Clang 11.0.3 (clang-1103.0.32.62)]
## numpy: /Users/jialei/.pyenv/versions/3.8.2/lib/python3.8/site-packages/numpy
## numpy_version: 1.19.0
##
## NOTE: Python version was forced by RETICULATE_PYTHON
np <- reticulate::import("numpy", convert = TRUE)
scipy.sparse <- reticulate::import(module = "scipy.sparse", convert = TRUE)
matrix_readcount_use <- scipy.sparse$load_npz("matrix_readcount.npz")
matrix_readcount_use_features <- np$load("matrix_readcount_features.npy")
matrix_readcount_use_barcodes <- np$load("matrix_readcount_barcodes.npy")
rownames(matrix_readcount_use) <- matrix_readcount_use_features
colnames(matrix_readcount_use) <- matrix_readcount_use_barcodes
matrix_readcount_use <- matrix_readcount_use[, embedding$cell]
# calculate CPM
matrix_cpm_use <- calc_cpm(matrix_readcount_use)
stopifnot(
dim(matrix_readcount_use) == dim(matrix_cpm_use)
)
print(dim(matrix_readcount_use))
## [1] 27998 89773
print(object.size(matrix_readcount_use), units = "auto", standard = "SI")
## 3.4 GB
print(object.size(matrix_cpm_use), units = "auto", standard = "SI")
## 3.4 GB
embedding %>%
mutate(num_umis = colSums(matrix_readcount_use[, cell])) %>%
group_by(louvain) %>%
summarise(
num_cell = n(),
median_umis = median(num_umis)
)
## `summarise()` ungrouping output (override with `.groups` argument)
p_embedding_cluster <- plot_embedding(
embedding = embedding[, c("x_tsne", "y_tsne")],
color_values = embedding$louvain %>% as.factor(),
label = "Cluster",
# label_position = c(label_x, label_y),
show_color_value_labels = TRUE,
show_color_legend = FALSE,
geom_point_size = 0.3,
sort_values = FALSE
) +
scale_color_manual(
values = gg_color_hue(n = length(unique(embedding$louvain)))
)
## Scale for 'colour' is already present. Adding another scale for 'colour',
## which will replace the existing scale.
p_embedding_cluster
# Embedding
plot_embedding_value(
embedding = embedding[, c("x_tsne", "y_tsne")],
color_values = matrix_readcount_use[, embedding$cell] %>%
colSums(),
colorbar_position = c(0.88, 0.27),
label = "UMI distribution",
label_position = NULL,
# label_position = c(label_x, label_y),
geom_point_size = 0.3,
sort_values = FALSE,
FUN = function(x) log10(x)
)
# violin
# sort(unique(embedding$louvain))
cells_cluster_lst <- map(sort(unique(embedding$louvain)), function(x) {
embedding %>%
filter(louvain == x) %>%
pull(cell)
})
names(cells_cluster_lst) <- sort(unique(embedding$louvain))
map(names(cells_cluster_lst), function(x) {
colSums(matrix_readcount_use[, cells_cluster_lst[[x]]]) %>%
enframe(name = "cell") %>%
mutate(group = x)
}) %>%
dplyr::bind_rows() %>%
mutate(
group = factor(
group,
levels = str_sort(
names(cells_cluster_lst),
numeric = TRUE,
decreasing = TRUE
)
),
category = "UMI distribution"
) %>%
plot_violin_umi(
x = value,
y = group,
z = "category"
)
file_name <- "Rplot_violin_UMIs.pdf"
if (file.exists(file_name)) {
ggsave(
filename = file_name,
useDingbats = FALSE,
plot = last_plot(),
device = NULL,
path = NULL,
scale = 1,
width = 55,
height = 85,
units = c("mm"),
)
}
selected_feature <- "ENSMUSG00000024621_Csf1r"
p_embedding_Csf1r <- plot_embedding_value(
embedding = embedding[, c("x_tsne", "y_tsne")],
color_values = matrix_cpm_use[selected_feature, embedding$cell],
colorbar_position = c(0.88, 0.27),
label = selected_feature,
label_position = NULL,
# label_position = c(label_x, label_y),
geom_point_size = 0.3,
sort_values = TRUE,
FUN = NULL
)
selected_feature <- "ENSMUSG00000052336_Cx3cr1"
p_embedding_Cx3cr1 <- plot_embedding_value(
embedding = embedding[, c("x_tsne", "y_tsne")],
color_values = matrix_cpm_use[selected_feature, embedding$cell],
colorbar_position = c(0.88, 0.27),
label = selected_feature,
label_position = NULL,
# label_position = c(label_x, label_y),
geom_point_size = 0.3,
sort_values = TRUE,
FUN = NULL
)
selected_feature <- "ENSMUSG00000036353_P2ry12"
p_embedding_P2ry12 <- plot_embedding_value(
embedding = embedding[, c("x_tsne", "y_tsne")],
color_values = matrix_cpm_use[selected_feature, embedding$cell],
colorbar_position = c(0.88, 0.27),
label = selected_feature,
label_position = NULL,
# label_position = c(label_x, label_y),
geom_point_size = 0.3,
sort_values = TRUE,
FUN = NULL
)
selected_feature <- "ENSMUSG00000036887_C1qa"
p_embedding_C1qa <- plot_embedding_value(
embedding = embedding[, c("x_tsne", "y_tsne")],
color_values = matrix_cpm_use[selected_feature, embedding$cell],
colorbar_position = c(0.88, 0.27),
label = selected_feature,
label_position = NULL,
# label_position = c(label_x, label_y),
geom_point_size = 0.3,
sort_values = TRUE,
FUN = NULL
)
p_embedding_combined <- grid.arrange(
p_embedding_Csf1r,
p_embedding_Cx3cr1,
p_embedding_P2ry12,
p_embedding_C1qa,
ncol = 2
)
clusters_lollipop <- sort(unique(embedding$louvain))
cells_selected_lollipop <- lapply(clusters_lollipop, function(x) {
embedding$cell[embedding$louvain == x]
})
names(cells_selected_lollipop) <- clusters_lollipop
FEATURES_LOLLIPOP <- c(
"ENSMUSG00000026959_Grin1",
"ENSMUSG00000035864_Syt1",
"ENSMUSG00000025576_Rbfox3",
"ENSMUSG00000027273_Snap25",
"ENSMUSG00000059003_Grin2a",
"ENSMUSG00000070570_Slc17a7",
"ENSMUSG00000038331_Satb2",
"ENSMUSG00000070880_Gad1",
"ENSMUSG00000026787_Gad2",
"ENSMUSG00000004366_Sst",
"ENSMUSG00000029819_Npy",
"ENSMUSG00000031425_Plp1",
"ENSMUSG00000041607_Mbp",
"ENSMUSG00000037625_Cldn11",
"ENSMUSG00000076439_Mog",
"ENSMUSG00000024617_Camk2a",
"ENSMUSG00000032532_Cck",
"ENSMUSG00000033161_Atp1a1",
"ENSMUSG00000023868_Pde10a",
"ENSMUSG00000061762_Tac1",
"ENSMUSG00000045573_Penk",
"ENSMUSG00000041592_Sdk2",
"ENSMUSG00000026837_Col5a1",
"ENSMUSG00000025582_Nptx1",
"ENSMUSG00000059173_Pde1a",
"ENSMUSG00000036617_Etl4",
"ENSMUSG00000005089_Slc1a2",
"ENSMUSG00000050953_Gja1",
"ENSMUSG00000024411_Aqp4",
"ENSMUSG00000021665_Hexb",
"ENSMUSG00000024621_Csf1r",
"ENSMUSG00000036887_C1qa",
"ENSMUSG00000036353_P2ry12",
"ENSMUSG00000029231_Pdgfra",
"ENSMUSG00000021614_Vcan",
"ENSMUSG00000032911_Cspg4",
"ENSMUSG00000046160_Olig1",
"ENSMUSG00000017344_Vtn",
"ENSMUSG00000029648_Flt1",
"ENSMUSG00000041378_Cldn5"
)
p_dotplot_features_selected <- plot_lollipop(
cells = cells_selected_lollipop,
features = FEATURES_LOLLIPOP,
matrix_cpm = matrix_cpm_use
)
p_dotplot_features_selected
FEATURES_VIOLIN <- c(
# "ENSMUSG00000018126_Baiap2l2",
# "ENSMUSG00000068129_Cst7",
# "ENSMUSG00000014599_Csf1",
# "ENSMUSG00000015568_Lpl",
# "ENSMUSG00000062593_Lilrb4a",
# "ENSMUSG00000030789_Itgax",
"ENSMUSG00000005533_Igf1r",
# "ENSMUSG00000000982_Ccl3",
# "ENSMUSG00000050370_Ch25h",
"ENSMUSG00000022265_Ank",
# "ENSMUSG00000002602_Axl",
# "ENSMUSG00000024610_Cd74",
"ENSMUSG00000002985_Apoe",
# "ENSMUSG00000069516_Lyz2",
"ENSMUSG00000029207_Apbb2",
"ENSMUSG00000021109_Hif1a",
# "ENSMUSG00000018927_Ccl6",
# "ENSMUSG00000029816_Gpnmb",
# "ENSMUSG00000025351_Cd63",
# "ENSMUSG00000073411_H2-D1",
"ENSMUSG00000007891_Ctsd",
"ENSMUSG00000023992_Trem2"
# "ENSMUSG00000052336_Cx3cr1",
# "ENSMUSG00000033192_Lpcat2",
# "ENSMUSG00000048163_Selplg"
# "ENSMUSG00000036353_P2ry12",
# "ENSMUSG00000054675_Tmem119"
# "ENSMUSG00000079227_Ccr5",
# "ENSMUSG00000029343_Crybb1"
)
plot_violin(
cells = cells_selected_lollipop,
features = FEATURES_VIOLIN,
matrix_cpm = matrix_cpm_use,
x_range_breaks = NULL
)
embedding_microglia <- read_csv(
file = "reclustering_microglia/embedding_ncomponents15_seed20200317.csv"
)
## Parsed with column specification:
## cols(
## cell = col_character(),
## batch = col_character(),
## louvain = col_double(),
## x_tsne = col_double(),
## y_tsne = col_double(),
## x_umap = col_double(),
## y_umap = col_double(),
## x_fitsne = col_double(),
## y_fitsne = col_double(),
## x_phate = col_double(),
## y_phate = col_double(),
## `x_min_dist=0.1` = col_double(),
## `y_min_dist=0.1` = col_double(),
## x_multicoretsne = col_double(),
## y_multicoretsne = col_double()
## )
embedding_microglia %>%
mutate(num_umis = colSums(matrix_readcount_use[, cell])) %>%
group_by(louvain) %>%
summarise(
num_cell = n(),
median_umis = median(num_umis)
)
## `summarise()` ungrouping output (override with `.groups` argument)
p_embedding_microglia_cluster <- plot_embedding(
embedding = embedding_microglia[, c("x_tsne", "y_tsne")],
color_values = embedding_microglia$louvain %>% as.factor(),
label = "Cluster",
# label_position = c(label_x, label_y),
show_color_value_labels = TRUE,
show_color_legend = FALSE,
geom_point_size = 0.6,
sort_values = FALSE
) +
scale_color_manual(
values = gg_color_hue(n = length(unique(embedding_microglia$louvain)))
)
## Scale for 'colour' is already present. Adding another scale for 'colour',
## which will replace the existing scale.
p_embedding_microglia_cluster
prepare_cluster_composition(
embedding = embedding_microglia,
x = louvain, group = batch
) %>%
select(-num_cells) %>%
pivot_wider(
names_from = batch,
values_from = percentage
) %>%
replace(is.na(.), 0) %>%
print(n = nrow(.))
## `summarise()` ungrouping output (override with `.groups` argument)
## `summarise()` regrouping output by 'louvain' (override with `.groups` argument)
## # A tibble: 9 x 13
## # Groups: louvain [9]
## louvain SRR10480618 SRR10480619 SRR10480622 SRR10480623 SRR10480624
## <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 0 0.00524 0.00131 0.00655 0.00393 0.256
## 2 1 0.119 0.107 0.101 0.120 0.0748
## 3 2 0.131 0.0773 0.129 0.0962 0.0442
## 4 3 0.0853 0.0821 0.0853 0.0692 0.121
## 5 4 0.129 0.0385 0.0963 0.0674 0.158
## 6 5 0.101 0.0671 0.0793 0.0854 0.0976
## 7 6 0.102 0.0472 0.102 0.0709 0.0945
## 8 7 0.0316 0.0421 0.0632 0.0105 0.147
## 9 8 0.195 0.0345 0.0345 0.0575 0.161
## # … with 7 more variables: SRR10480625 <dbl>, SRR10480626 <dbl>,
## # SRR10480627 <dbl>, SRR10480628 <dbl>, SRR10480629 <dbl>, SRR10480620 <dbl>,
## # SRR10480621 <dbl>
prepare_cluster_composition(
embedding = embedding_microglia,
x = louvain, group = batch
) %>%
arrange(louvain) %>%
mutate(
batch = factor(batch),
louvain = factor(louvain)
) %>%
plot_barplot(x = louvain, y = percentage, z = batch) +
scale_fill_manual(
values = ggthemes::tableau_color_pal("Tableau 20")(
length(unique(embedding_microglia$batch))
),
labels = str_pad(
string = embedding_microglia$batch,
width = nchar("Trem2_KO_5XFAD"),
side = "right",
pad = "\U2800"
)
)
## `summarise()` ungrouping output (override with `.groups` argument)
## `summarise()` regrouping output by 'louvain' (override with `.groups` argument)
Format genotype for samples.
embedding_microglia %<>%
mutate(sample = case_when(
batch %in% c("SRR10480618", "SRR10480619", "SRR10480620") ~ "WT",
batch %in% c("SRR10480621", "SRR10480622", "SRR10480623") ~ "Trem2_KO",
batch %in% c("SRR10480624", "SRR10480625", "SRR10480626") ~ "WT_5XFAD",
batch %in% c("SRR10480627", "SRR10480628", "SRR10480629") ~ "Trem2_KO_5XFAD"
)) %>%
dplyr::select(cell, batch, sample, louvain, everything())
prepare_cluster_composition(
embedding = embedding_microglia,
x = louvain, group = sample
) %>%
mutate(
sample = factor(
sample,
levels = (c("WT", "Trem2_KO", "WT_5XFAD", "Trem2_KO_5XFAD"))
),
louvain = factor(louvain)
) %>%
arrange(louvain) %>%
plot_barplot(x = louvain, y = percentage, z = sample) +
scale_fill_manual(
values = ggthemes::tableau_color_pal("Tableau 10")(
length(unique(embedding_microglia$sample))
)
)
## `summarise()` ungrouping output (override with `.groups` argument)
## `summarise()` regrouping output by 'louvain' (override with `.groups` argument)
prepare_cluster_composition(
embedding = embedding_microglia,
x = sample, group = louvain
) %>%
mutate(
sample = factor(
sample,
levels = rev(c("WT", "Trem2_KO", "WT_5XFAD", "Trem2_KO_5XFAD"))
)
) %>%
arrange(louvain) %>%
mutate(louvain = factor(louvain)) %>%
plot_barplot(x = sample, y = percentage, z = louvain) +
coord_flip() +
scale_fill_manual(
values = ggthemes::tableau_color_pal("Tableau 10")(
length(unique(embedding_microglia$louvain))
)
)
## `summarise()` ungrouping output (override with `.groups` argument)
## `summarise()` regrouping output by 'sample' (override with `.groups` argument)
FEATURES_HEATMAP <- c(
"ENSMUSG00000018126_Baiap2l2",
"ENSMUSG00000068129_Cst7",
"ENSMUSG00000014599_Csf1",
"ENSMUSG00000015568_Lpl",
"ENSMUSG00000062593_Lilrb4a",
"ENSMUSG00000030789_Itgax",
"ENSMUSG00000005533_Igf1r",
"ENSMUSG00000000982_Ccl3",
"ENSMUSG00000050370_Ch25h",
"ENSMUSG00000022265_Ank",
"ENSMUSG00000002602_Axl",
"ENSMUSG00000024610_Cd74",
"ENSMUSG00000002985_Apoe",
"ENSMUSG00000069516_Lyz2",
"ENSMUSG00000029207_Apbb2",
"ENSMUSG00000021109_Hif1a",
"ENSMUSG00000018927_Ccl6",
"ENSMUSG00000029816_Gpnmb",
"ENSMUSG00000025351_Cd63",
"ENSMUSG00000073411_H2-D1",
"ENSMUSG00000007891_Ctsd",
"ENSMUSG00000023992_Trem2",
"ENSMUSG00000052336_Cx3cr1",
"ENSMUSG00000033192_Lpcat2",
"ENSMUSG00000048163_Selplg",
"ENSMUSG00000036353_P2ry12",
"ENSMUSG00000054675_Tmem119",
"ENSMUSG00000079227_Ccr5",
"ENSMUSG00000029343_Crybb1"
)
matrix_heatmap <- sapply(sort(unique(embedding_microglia$batch)), function(x) {
cells_in_group <- embedding_microglia %>%
filter(batch == x) %>%
pull(cell)
rowMeans(matrix_cpm_use[FEATURES_HEATMAP, cells_in_group])
})
matrix_heatmap <- log10(matrix_heatmap + 1)
matrix_heatmap <- t(scale(t(matrix_heatmap)))
rownames(matrix_heatmap) <- str_remove(
string = rownames(matrix_heatmap),
pattern = "^E.+_"
)
ComplexHeatmap::Heatmap(
matrix = matrix_heatmap,
col = wesanderson::wes_palette("Zissou1", 100, type = "continuous"),
rect_gp = grid::gpar(col = "white", lwd = 0.1),
cluster_columns = FALSE,
row_names_gp = grid::gpar(fontfamily = "Arial", fontsize = 6),
column_names_gp = grid::gpar(fontfamily = "Arial", fontsize = 6),
heatmap_legend_param = list(
title = "Z score",
title_gp = grid::gpar(
fontfamily = "Arial",
fontsize = 6
),
legend_direction = "vertical",
labels_gp = grid::gpar(
fontfamily = "Arial",
fontsize = 5
),
legend_height = unit(25, "mm"),
legend_width = unit(10, "mm")
)
# heatmap_width = unit(8, "cm")
# heatmap_height = unit(8, "cm")
)
sessioninfo::session_info()
## ─ Session info ───────────────────────────────────────────────────────────────
## setting value
## version R version 4.0.2 (2020-06-22)
## os macOS Catalina 10.15.6
## system x86_64, darwin19.5.0
## ui unknown
## language (EN)
## collate en_US.UTF-8
## ctype en_US.UTF-8
## tz America/Chicago
## date 2020-07-23
##
## ─ Packages ───────────────────────────────────────────────────────────────────
## package * version date lib
## abind 1.4-5 2016-07-21 [1]
## ape 5.4 2020-06-03 [1]
## assertthat 0.2.1 2019-03-21 [1]
## backports 1.1.8 2020-06-17 [1]
## blob 1.2.1 2020-01-20 [1]
## broom 0.7.0.9001 2020-07-14 [1]
## cellranger 1.1.0 2016-07-27 [1]
## circlize 0.4.10 2020-06-15 [1]
## cli 2.0.2 2020-02-28 [1]
## clue 0.3-57 2019-02-25 [1]
## cluster 2.1.0 2019-06-19 [2]
## codetools 0.2-16 2018-12-24 [2]
## colorspace 1.4-1 2019-03-18 [1]
## ComplexHeatmap 2.4.2 2020-05-04 [1]
## cowplot 1.0.0 2019-07-11 [1]
## crayon 1.3.4 2017-09-16 [1]
## data.table 1.12.9 2020-07-04 [1]
## DBI 1.1.0 2019-12-15 [1]
## dbplyr 1.4.4 2020-05-27 [1]
## deldir 0.1-28 2020-07-15 [1]
## digest 0.6.25 2020-02-23 [1]
## dplyr * 1.0.1 2020-07-21 [1]
## ellipsis 0.3.1.9000 2020-07-18 [1]
## evaluate 0.14 2019-05-28 [1]
## extrafont * 0.17 2014-12-08 [1]
## extrafontdb 1.0 2012-06-11 [1]
## fansi 0.4.1 2020-01-08 [1]
## farver 2.0.3 2020-01-16 [1]
## fastmap 1.0.1 2019-10-08 [1]
## fitdistrplus 1.1-1 2020-05-19 [1]
## forcats * 0.5.0.9000 2020-05-28 [1]
## fs 1.4.1.9000 2020-07-18 [1]
## future 1.18.0 2020-07-09 [1]
## future.apply 1.6.0 2020-07-01 [1]
## generics 0.0.2 2018-11-29 [1]
## GetoptLong 1.0.2 2020-07-06 [1]
## ggplot2 * 3.3.2.9000 2020-07-13 [1]
## ggrepel 0.9.0 2020-04-25 [1]
## ggridges 0.5.2 2020-01-12 [1]
## ggthemes 4.2.0 2019-05-13 [1]
## GlobalOptions 0.1.2 2020-06-10 [1]
## globals 0.12.5 2019-12-07 [1]
## glue 1.4.1.9000 2020-07-07 [1]
## goftest 1.2-2 2019-12-02 [1]
## gridExtra * 2.3 2017-09-09 [1]
## gtable 0.3.0 2019-03-25 [1]
## haven 2.3.1 2020-06-01 [1]
## hms 0.5.3 2020-01-08 [1]
## htmltools 0.5.0 2020-06-16 [1]
## htmlwidgets 1.5.1 2019-10-08 [1]
## httpuv 1.5.4 2020-06-06 [1]
## httr 1.4.2 2020-07-20 [1]
## ica 1.0-2 2018-05-24 [1]
## igraph 1.2.5 2020-03-19 [1]
## irlba 2.3.3 2019-02-05 [1]
## jsonlite 1.7.0 2020-06-25 [1]
## KernSmooth 2.23-17 2020-04-26 [2]
## knitr 1.29 2020-06-23 [1]
## labeling 0.3 2014-08-23 [1]
## later 1.1.0.1 2020-06-05 [1]
## lattice 0.20-41 2020-04-02 [2]
## lazyeval 0.2.2 2019-03-15 [1]
## leiden 0.3.3 2020-02-04 [1]
## lifecycle 0.2.0 2020-03-06 [1]
## listenv 0.8.0 2019-12-05 [1]
## lmtest 0.9-37 2019-04-30 [1]
## lubridate 1.7.9 2020-07-11 [1]
## magrittr * 1.5.0.9000 2020-07-13 [1]
## MASS 7.3-51.6 2020-04-26 [2]
## Matrix * 1.2-18 2019-11-27 [1]
## mgcv 1.8-31 2019-11-09 [2]
## mime 0.9 2020-02-04 [1]
## miniUI 0.1.1.1 2018-05-18 [1]
## modelr 0.1.8.9000 2020-05-19 [1]
## munsell 0.5.0 2018-06-12 [1]
## nlme 3.1-148 2020-05-24 [2]
## patchwork 1.0.1.9000 2020-06-22 [1]
## pbapply 1.4-2 2019-08-31 [1]
## pillar 1.4.6.9000 2020-07-21 [1]
## pkgconfig 2.0.3 2019-09-22 [1]
## plotly 4.9.2.1 2020-04-04 [1]
## plyr 1.8.6 2020-03-03 [1]
## png 0.1-7 2013-12-03 [1]
## polyclip 1.10-0 2019-03-14 [1]
## promises 1.1.1 2020-06-09 [1]
## purrr * 0.3.4.9000 2020-06-27 [1]
## R6 2.4.1.9000 2020-07-18 [1]
## RANN 2.6.1 2019-01-08 [1]
## RColorBrewer 1.1-2 2014-12-07 [1]
## Rcpp 1.0.5 2020-07-06 [1]
## RcppAnnoy 0.0.16 2020-03-08 [1]
## readr * 1.3.1.9000 2020-07-16 [1]
## readxl 1.3.1.9000 2020-05-28 [1]
## reprex 0.3.0 2019-05-16 [1]
## reshape2 1.4.4 2020-04-09 [1]
## reticulate 1.16 2020-05-27 [1]
## rjson 0.2.20 2018-06-08 [1]
## rlang * 0.4.7.9000 2020-07-16 [1]
## rmarkdown 2.3.2 2020-07-05 [1]
## ROCR 1.0-11 2020-05-02 [1]
## rpart 4.1-15 2019-04-12 [2]
## rstudioapi 0.11.0-9000 2020-07-15 [1]
## rsvd 1.0.3 2020-02-17 [1]
## Rtsne 0.16 2020-07-03 [1]
## Rttf2pt1 1.3.8 2020-01-10 [1]
## rvest 0.3.5 2019-11-08 [1]
## scales 1.1.1.9000 2020-07-18 [1]
## sctransform 0.2.1 2019-12-17 [1]
## sessioninfo 1.1.1.9000 2020-07-18 [1]
## Seurat * 3.2.0 2020-07-15 [1]
## shape 1.4.4 2018-02-07 [1]
## shiny 1.5.0.9001 2020-07-17 [1]
## spatstat 1.64-1 2020-05-12 [1]
## spatstat.data 1.4-3 2020-01-26 [1]
## spatstat.utils 1.17-0 2020-02-07 [1]
## stringi 1.4.6 2020-02-17 [1]
## stringr * 1.4.0.9000 2020-06-01 [1]
## styler * 1.3.2.9000 2020-07-13 [1]
## survival 3.2-3 2020-06-13 [2]
## tensor 1.5 2012-05-05 [1]
## tibble * 3.0.3.9000 2020-07-21 [1]
## tidyr * 1.1.0.9000 2020-07-11 [1]
## tidyselect 1.1.0.9000 2020-07-11 [1]
## tidyverse * 1.3.0.9000 2020-06-01 [1]
## utf8 1.1.4 2018-05-24 [1]
## uwot 0.1.8.9000 2020-07-19 [1]
## vctrs 0.3.2.9000 2020-07-21 [1]
## viridisLite 0.3.0 2018-02-01 [1]
## wesanderson 0.3.6.9000 2020-06-05 [1]
## withr 2.2.0 2020-04-20 [1]
## xfun 0.15 2020-06-21 [1]
## xml2 1.3.2 2020-04-23 [1]
## xtable 1.8-4 2019-04-21 [1]
## yaml 2.2.1 2020-02-01 [1]
## zoo 1.8-8 2020-05-02 [1]
## source
## CRAN (R 4.0.0)
## CRAN (R 4.0.2)
## CRAN (R 4.0.0)
## CRAN (R 4.0.1)
## CRAN (R 4.0.0)
## Github (tidymodels/broom@7db1139)
## CRAN (R 4.0.0)
## CRAN (R 4.0.1)
## CRAN (R 4.0.0)
## CRAN (R 4.0.0)
## CRAN (R 4.0.2)
## CRAN (R 4.0.2)
## CRAN (R 4.0.0)
## Bioconductor
## CRAN (R 4.0.0)
## CRAN (R 4.0.0)
## local
## CRAN (R 4.0.0)
## CRAN (R 4.0.0)
## CRAN (R 4.0.2)
## CRAN (R 4.0.0)
## Github (tidyverse/dplyr@9b63b17)
## Github (r-lib/ellipsis@57a5071)
## CRAN (R 4.0.0)
## CRAN (R 4.0.2)
## CRAN (R 4.0.0)
## CRAN (R 4.0.0)
## CRAN (R 4.0.0)
## CRAN (R 4.0.0)
## CRAN (R 4.0.0)
## Github (tidyverse/forcats@ab81d1b)
## Github (r-lib/fs@ea026b0)
## CRAN (R 4.0.2)
## CRAN (R 4.0.2)
## CRAN (R 4.0.0)
## CRAN (R 4.0.2)
## Github (tidyverse/ggplot2@a3019f9)
## Github (slowkow/ggrepel@3941cf1)
## CRAN (R 4.0.0)
## CRAN (R 4.0.0)
## CRAN (R 4.0.0)
## CRAN (R 4.0.0)
## Github (tidyverse/glue@205f18b)
## CRAN (R 4.0.2)
## CRAN (R 4.0.0)
## CRAN (R 4.0.0)
## CRAN (R 4.0.0)
## CRAN (R 4.0.0)
## CRAN (R 4.0.1)
## CRAN (R 4.0.0)
## CRAN (R 4.0.0)
## CRAN (R 4.0.2)
## CRAN (R 4.0.0)
## CRAN (R 4.0.2)
## CRAN (R 4.0.2)
## CRAN (R 4.0.2)
## CRAN (R 4.0.2)
## CRAN (R 4.0.2)
## CRAN (R 4.0.0)
## CRAN (R 4.0.0)
## CRAN (R 4.0.2)
## CRAN (R 4.0.0)
## CRAN (R 4.0.0)
## CRAN (R 4.0.0)
## CRAN (R 4.0.0)
## CRAN (R 4.0.2)
## Github (tidyverse/lubridate@de2ee09)
## Github (tidyverse/magrittr@6ca227a)
## CRAN (R 4.0.2)
## CRAN (R 4.0.2)
## CRAN (R 4.0.2)
## CRAN (R 4.0.0)
## CRAN (R 4.0.0)
## Github (tidyverse/modelr@16168e0)
## CRAN (R 4.0.0)
## CRAN (R 4.0.2)
## Github (thomasp85/patchwork@82a5e03)
## CRAN (R 4.0.0)
## Github (r-lib/pillar@8aef8f2)
## CRAN (R 4.0.0)
## CRAN (R 4.0.0)
## CRAN (R 4.0.0)
## CRAN (R 4.0.0)
## CRAN (R 4.0.2)
## CRAN (R 4.0.0)
## Github (tidyverse/purrr@a855322)
## Github (r-lib/R6@1415d11)
## CRAN (R 4.0.0)
## CRAN (R 4.0.0)
## CRAN (R 4.0.2)
## CRAN (R 4.0.0)
## Github (tidyverse/readr@2ab51b2)
## Github (tidyverse/readxl@3815961)
## CRAN (R 4.0.0)
## CRAN (R 4.0.0)
## CRAN (R 4.0.2)
## CRAN (R 4.0.0)
## Github (r-lib/rlang@376c9c8)
## Github (rstudio/rmarkdown@ff1b279)
## CRAN (R 4.0.0)
## CRAN (R 4.0.2)
## Github (rstudio/rstudioapi@ed5dd25)
## CRAN (R 4.0.0)
## Github (jkrijthe/Rtsne@14b195f)
## CRAN (R 4.0.0)
## CRAN (R 4.0.0)
## Github (r-lib/scales@350b0dc)
## CRAN (R 4.0.0)
## Github (r-lib/sessioninfo@791705b)
## Github (satijalab/seurat@f5dc4ed)
## CRAN (R 4.0.0)
## Github (rstudio/shiny@abc6a98)
## CRAN (R 4.0.2)
## CRAN (R 4.0.2)
## CRAN (R 4.0.2)
## CRAN (R 4.0.0)
## Github (tidyverse/stringr@f70c4ba)
## Github (r-lib/styler@babfd0d)
## CRAN (R 4.0.2)
## CRAN (R 4.0.2)
## Github (tidyverse/tibble@b4eec19)
## Github (tidyverse/tidyr@9c4f908)
## Github (tidyverse/tidyselect@69fdc96)
## Github (hadley/tidyverse@8a0bb99)
## CRAN (R 4.0.0)
## Github (jlmelville/uwot@13a198f)
## Github (r-lib/vctrs@bcfd66f)
## CRAN (R 4.0.0)
## Github (karthik/wesanderson@d90700a)
## CRAN (R 4.0.0)
## CRAN (R 4.0.1)
## CRAN (R 4.0.0)
## CRAN (R 4.0.0)
## CRAN (R 4.0.0)
## CRAN (R 4.0.0)
##
## [1] /usr/local/lib/R/4.0/site-library
## [2] /usr/local/Cellar/r/4.0.2_1/lib/R/library